home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / f2c / may_5_92.lha / f2c.VMay_5_1992 / libI77 / uio.c < prev    next >
C/C++ Source or Header  |  1992-05-07  |  937b  |  42 lines

  1. #include "f2c.h"
  2. #include "fio.h"
  3. uiolen reclen;
  4. do_us(number,ptr,len) ftnint *number; ftnlen len; char *ptr;
  5. {
  6.     if(reading)
  7.     {
  8.         recpos += *number * len;
  9.         if(recpos>reclen)
  10.             err(elist->ciend, 110, "do_us");
  11.         if (fread(ptr,(int)len,(int)(*number),cf) != *number)
  12.             err(elist->ciend, EOF, "do_us");
  13.         return(0);
  14.     }
  15.     else
  16.     {
  17.         reclen += *number * len;
  18.         (void) fwrite(ptr,(int)len,(int)(*number),cf);
  19.         return(0);
  20.     }
  21. }
  22. integer do_uio(number,ptr,len) ftnint *number; ftnlen len; char *ptr;
  23. {
  24.     if(sequential)
  25.         return(do_us(number,ptr,len));
  26.     else    return(do_ud(number,ptr,len));
  27. }
  28. do_ud(number,ptr,len) ftnint *number; ftnlen len; char *ptr;
  29. {
  30.     recpos += *number * len;
  31.     if(recpos > curunit->url && curunit->url!=1)
  32.         err(elist->cierr,110,"do_ud");
  33.     if(reading)
  34.     {
  35.         if(fread(ptr,(int)len,(int)(*number),cf) != *number)
  36.             err(elist->cierr,EOF,"do_ud")
  37.         else return(0);
  38.     }
  39.     (void) fwrite(ptr,(int)len,(int)(*number),cf);
  40.     return(0);
  41. }
  42.